With the increased availability of different smart devices that access the internet, many new applications have been developed that leverage internet connectivity. The Internet of Things (IoT) is a phrase given for the interconnection of computing devices scattered around the globe within the existing internet infrastructure. IoT devices may be embedded in a variety of products, such as home appliances, manufacturing devices, printers, automobiles, thermostats, smart traffic lights, etc. Many client devices make use of a long-lived connection with a server of a remote service provider in order to stream data from the client device to the server and from the server to the client device whenever data needs to be transmitted (e.g., publish-subscribe communication).
The process of provisioning an IoT device to connect to a service provider and to use services of the service provider can be a high-friction process. For example, configuring a local wireless connection, device authentication, and binding to a user account at the service provider can be a time-consuming and complex exercise. A user may be required to enter a large amount of data at multiple steps in order to provision an IoT device to establish a connection with a service provider and to begin using the IoT device. Therefore, the process can be error-prone, which often results in requiring a user to repeat the same step multiple times before successfully provisioning a given IoT device.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.